Skip to content

feat(stream): implement declared event ingress - #298

Closed
schickling wants to merge 4 commits into
schickling/2026-08-20-pipesfrom
schickling/2026-08-20-streams-final
Closed

feat(stream): implement declared event ingress#298
schickling wants to merge 4 commits into
schickling/2026-08-20-pipesfrom
schickling/2026-08-20-streams-final

Conversation

@schickling

@schickling schickling commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements the stream subsystem specified by #287 as its dependent implementation PR.

  • admits typed nested stream declarations with command, argv, or external ingress
  • lowers launched streams directly to lifecycle-coupled derived exec companions
  • adds source-preserving st2 stream add/rm authoring
  • adds bounded, idempotent st2 event emit ingress with keyed and keyless supersession
  • publishes ordinary inbox records and reuses existing archive/DING safety
  • resolves the st2 VRS implementation delta

Verification

PASS:

  • local nix flake check --print-build-logs (all 9 x86_64-linux checks)
  • formatting and workspace all-target checks
  • event E2E: 14/14
  • Agent Spec discovery: 55/55
  • message CLI: 18/18
  • authoring, lifecycle, wire, and invariant proofs

Canonical failure-capable E2E proof is in compoundingtech/evals#79, exact-pinned to 2fa21f12212777ee46857d6eb3eb13db1b4ba64b; its stream cell passes 8/8 and complete corpus preflight passes.

Stack

The branch base preserves the dependency. GitHub stack metadata was removed after it repeatedly reported a false conflict for a direct-descendant head.

Originally managed with GitHub Stacks CLI

@schickling
schickling changed the base branch from schickling/2026-08-20-pipes to main August 20, 2026 09:55
@schickling
schickling changed the base branch from main to schickling/2026-08-20-pipes August 20, 2026 09:56
@schickling schickling closed this Aug 20, 2026
@schickling schickling reopened this Aug 20, 2026
@schickling
schickling changed the base branch from schickling/2026-08-20-pipes to main August 20, 2026 09:57
@schickling
schickling changed the base branch from main to schickling/2026-08-20-pipes August 20, 2026 09:58
@schickling

Copy link
Copy Markdown
Contributor Author

Refreshing GitHub mergeability and pull_request checks; candidate commit remains unchanged.

@schickling

Copy link
Copy Markdown
Contributor Author

Superseded by #300 at the identical commit while isolating GitHub mergeability-cache corruption. All prior review-thread audit remains on #288.

@schickling schickling closed this Aug 20, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2fa21f1221

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +174 to +176
/// Named event subscriptions. Command-less streams are external ingress endpoints; launched
/// streams additionally lower to one derived exec companion.
pub streams: Vec<Stream>,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include streams in catalog semantic normalization

Add spec.streams to src/catalog_transaction.rs::normalize_agent. That function currently normalizes resources and tasks but never this new field, so adding or removing a command-less external-ingress stream produces a changed Agent Spec path while st2 catalog diff --json emits no corresponding agents semantic delta; consumers of the typed agent diff therefore cannot observe that event admission changed. Launched streams are only represented indirectly as generic derived tasks and likewise lose their stream declaration semantics.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant